Device independent caller ID

ABSTRACT

Methods and systems are disclosed for supplying calling party information to a called party via a network comprising a telephone network, a data network, and at least one gateway device. The gateway device is connected to both the telephone network and the data network. The gateway device receives, via the telephone network, signaling information representing a telephone call from the calling party to the called party. The signaling information includes called party information. Calling party information is obtained based on the signaling information. The calling party information is provided to the called party via the data network.

RELATED APPLICATIONS

Applicants claim the right to priority under 35 U.S.C, § 119(e) based onProvisional Patent Application No. 60/272,122, entitled “VOICE MAILINTEGRATION WITH INSTANT MESSENGER,” filed Feb. 27, 2001; ProvisionalPatent Application No. 60/272,167, entitled “DEVICE INDEPENDENT CALLERID,” filed Feb. 27, 2001; Provisional Patent Application No. 60/275,667,entitled “CALENDAR CALLING AGENT,” filed Mar. 13, 2001; ProvisionalPatent Application No. 60/275,719, entitled “CALENDAR CALLING AGENT,”filed Mar. 13, 2001; Provisional Patent Application No. 60/275,020,entitled “METHOD AND APPARATUS FOR INTEGRATED BILLING VIA PDA,” filedMar. 13, 2001; Provisional Patent Application No. 60/275,031, entitled“METHOD AND APPARATUS FOR UNIFIED COMMUNICATIONS MANAGER VIA INSTANTMESSAGING,” filed Mar. 13, 2001; and Provisional Patent Application No.60/276,505, entitled “METHOD AND APPARATUS FOR CONTEXT BASED QUERYING,”filed Mar. 19, 2001, and all of which are expressly incorporated hereinby reference in their entirety.

The present application also relates to U.S. patent application Ser. No.10/083,792, entitled “VOICE MAIL INTEGRATION WITH INSTANT MESSENGER”;U.S. patent application Ser. No. 10/083,822, entitled “METHOD ANDAPPARATUS FOR A UNIFIED COMMUNICATION MANAGEMENT VIA INSTANT MESSAGING”;U.S. patent application Ser. No. 10/084,390, entitled “METHOD ANDAPPARATUS FOR CONTEXT BASED QUERYING”; U.S. patent application Ser. No.10/083,793, entitled “METHOD AND APPARATUS FOR CALENDARED COMMUNICATIONSFLOW CONTROL”; U.S. patent application Ser. No. 10/084,121, entitled“CALENDAR-BASED CALLING AGENTS”; U.S. patent application Ser. No.10/083,798, entitled “METHOD AND APPARATUS FOR INTEGRATED BILLING VIAPDA”; and U.S. patent application Ser. No. 10/084,002, entitled “METHODAND APPARATUS FOR DIAL STREAM ANALYSIS”, and all of which are expresslyincorporated herein by reference in their entirety.

FIELD OF THE INVENTION

The present invention relates to systems and methods for controllingtelephony systems using data processing systems and, more particularly,to providing information regarding the origin of telephone calls.

BACKGROUND OF THE INVENTION

Telephone service providers typically offer caller identification(“Caller-ID”) as a service to report the telephone number and,optionally, a name of a calling party. Caller-ID provides the calledparty an opportunity to learn the identity of a calling party beforeanswering a call. This allows a called party to screen calls fromparticular calling parties. Alternatively, it may alert a called partyto answer the current call from a particular person. The Caller-IDservice may also allow historical logging of calls. For example, aperson may attempt to contact one of her friends and may not leave avoice mail message. With Caller-ID, the called friend may refer to arecord of the time and telephone number of the calling friend, and maythen return the call, even though the calling friend did not leave avoice mail message. Alternatively, a person may use the historicallogging feature to aid in remembering when telephone calls were receivedor when telephone calls were accepted and the date and time of aparticular call took place.

Caller-ID information is delivered to a device coupled to the PublicSwitched Telephone Network (“PSTN”). For example, a dedicated Caller-IDdevice can be connected to a PSTN line that is shared with a telephone.More complex systems, such as those deployed in business environmentsmay use a local Private Branch Exchange (“PBX”) connected to the PSTNand have Caller-ID displays integrated into the telephone units.Additionally, many wireless telephone service providers use wirelesshandsets which have integrated Caller-ID display functionality.

Unfortunately, the known systems are limited to delivering Caller-IDinformation to a specific device. For example, Caller-ID informationdelivered to a person's business telephone unit does not appear at thatperson's home. As a result, that person may not learn of a missed calluntil he returns home from work. Furthermore, the known systems arelimited to the PSTN and are incapable of delivering Caller-IDinformation over a data network. Known systems do not have the abilityto obtain Caller-ID information from the PSTN and provide the Caller-IDinformation to users via a data network, such as the Internet. Forexample, a person may not receive Caller-ID information at his computer,e.g., in real time.

SUMMARY OF THE INVENTION

Consistent with the principles of the present invention, calling partyinformation is supplied to a called party over a telephone network, or adata network using at least one server connected to both the telephonenetwork and the data network. The server receives, through the telephonenetwork, signaling information representing a telephone call from acalling party to a called party. The signaling information comprisescalled party information. The server obtains the calling partyinformation based on the signaling information, and provides the callingparty information to the called party via the data network.

Consistent with the principles of the present invention, calleridentification information is supplied from a calling party to a calledparty via a public telephone network, using a caller identificationgateway by which the calling party places a telephone call bytransmitting signaling information corresponding to a telephone numberof the called party over the public telephone network. The serveraccepts the signaling information corresponding to the telephone numberassociated with the called party. A path through the public telephonenetwork based on the signaling information is established. A telephoneswitch corresponding to a destination telephone terminal correspondingto the telephone number associated with the called party is selected.Caller identification information corresponding to the calling party isretrieved by the caller identification gateway from the telephoneswitch. The caller identification information is transmitted to a userservice center server using an internet protocol. The calleridentification information is transmitted by the user service centerserver to an instant messaging server over an internet protocol datanetwork. The caller identification information to the called party ispresented by displaying an instant message provided by the instantmessaging server on a computer screen of a called party.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments of the invention andtogether with the description, serve to explain the principles of theinvention.

FIG. 1 is a block diagram of a data processing and telecommunicationsenvironment, in accordance with methods and apparatus consistent withthe principles of the present invention;

FIG. 2 is a block diagram of a data terminal, in accordance with methodsand apparatus consistent with the principles of the present invention;

FIGS. 3 a–3 m are exemplary screen shots of a user interface forcaller-id notification services, in accordance with methods andapparatus consistent with the principles of the present invention;

FIG. 4 is a block diagram of a service center, in accordance withmethods and apparatus consistent with the principles of the presentinvention;

FIG. 5 is an exemplary data structure used for providing calleridentification information, in accordance with methods and apparatusconsistent with the principles of the present invention;

FIG. 6 is a block diagram of a voice network, in accordance with methodsand apparatus consistent with the principles of the present invention;and

FIG. 7 is a flow diagram illustrating a method of supplying Caller-IDinformation over a data network consistent with the principles of thepresent invention.

DETAILED DESCRIPTION

Consistent with the principles of the present invention, calling partyinformation from a telephone network, such as Caller-ID information, isprovided to a called party via a data network using a unifiedcommunications service. The unified communications service receives,from the telephone network, signaling information representing atelephone call from a calling party to a called party. The unifiedcommunications service determines the calling party information based onthe signaling information, and provides the calling party information tothe called party via the data network.

In accordance with the principles of the present invention, informationindicating a voice mail from a telephone network, is provided to acalled party via a data network using a unified communications service.The unified communications service receives, from the telephone network,information representing a voice mail intended for a called party. Theunified communications service then provides the voice mail informationto the called party via the data network.

Reference will now be made in detail to exemplary embodiments of thepresent invention, examples of which are illustrated in the accompanyingdrawings. Wherever possible, the same reference numbers will be usedthroughout the drawings to refer to the same or like parts.

FIG. 1 is a block diagram of a data processing and telecommunicationsenvironment, in accordance with methods and apparatus consistent withthe principles of the present invention. The data processing andtelecommunications environment 100 may include a data network 102, avoice network 104, a service center 106, and a service center database108. As shown, a user 110 may use a data terminal 112 to interface datanetwork 102. In addition, user 110 may use phones 114, 116, and 118 tointerface with voice network 104. For example, calling party 120 may usephone 122 to call user 110 at any one of phones 114, 116, and 118.

Data network 102 provides communications between the various entitiesdepicted in environment 100 of FIG. 1, such as data terminal 112 andservice center 106. Data network 102 may be a shared, public, or privatenetwork and encompass a wide area or local area. For example, datanetwork 102 may be implemented on a network, such as the Internet.

Voice network 104 provides telephony services, for example, to allowcalling party 120 to place a telephone call to user 110. For example,voice network 104 may be implemented using a network, such as the PublicSwitched Telephone Network (“PSTN”). Alternatively, voice network 104may be implemented using voice-over Internet Protocol (“VoIP”)technology. In addition, voice network 104 may be implemented using boththe PSTN and VoIP technology consistent with the principles of thepresent invention. Voice network 104 is described in further detail withreference to FIG. 6.

Service center 106 provides a platform for managing communications overdata network 102 and voice network 104. In addition, service center 106provides gateway functions, such as code and protocol conversions, totransfer communications between data network 102 and voice network 104.Service center 106 may be implemented using a combination of hardwareand software. For example, service center 106 may be implemented using aplurality of a general purpose computers or servers coupled by a network(not shown). Although service center 106 is shown with directconnections to data network 102 and voice network 104, any number andtype of network elements may be interposed between service center 106,data network 102, and voice network 104. Service center 106 is describedin further detail with reference to FIG. 4.

Service center database 108 contains information regarding user 110. Forexample, service center database 108 may contain information including:an identifier for user 110, a password, one or more email addresses foruser 110, one or more instant messaging identifiers for user 110, andone or more telephone numbers, such as for phones 114, 116, and 118.Additionally, service center database 108 may contain configurationinformation that indicate rules for how and when communications, such astelephone calls over voice network 104, are forwarded. Service centerdatabase 108 may be implemented as an Oracle™ database using acombination of known hardware and software, such as Proliant™ serversand EMC storage devices.

Data terminal 112 provides user 110 an interface to data network 102.For example, data terminal 112 may be implemented using any devicecapable of accessing the Internet, such as a general purpose computer orpersonal computer equipped with a modem. Data terminal 112 may also beimplemented in other devices, such as the Blackberry™, and Ergo Audrey™.Furthermore, data terminal 112 may be implemented in wireless devices,such as pagers, mobile phones (with data access functions), and PersonalDigital Assistants (“PDA”) with network connections.

Data terminal 112 also allows user 110 to communicate with servicecenter 106. For example, user 110 may use instant messaging (“IM”) tocommunicate with service center 106. IM is a communications serviceimplemented over the Transmission Control Protocol and Internet Protocol(“TCP/IP”) suite to create a private communication channel. Althoughthere is no accepted universal IM standard, an appropriate IM model maybe found in RFC 2778, M. Day et al., The Internet Society (2000), titled“A Model for Presence and Instant Messaging,” which describes, interalia, a model for providing instant messaging services. There areseveral known IM systems including America OnLine Instant Messenger(“AIM”) and Microsoft Network Messenger Service (“MSNMS”). In additionto IM services, data terminal 112 may use other aspects of TCP/IPincluding the hypertext transfer protocol (“HTTP”); the user datagramprotocol (“UDP”); the file transfer protocol (“FTP”); the hypertextmarkup language (“HTML”); and the extensible markup language (“XML”).

Data terminal 112 may communicate directly with service center 106. Forexample, a client application may be installed on data terminal 112,which directly communicates with service center 106. Alternatively, dataterminal 112 may communicate with service center 106 via proxy 124. Dataterminal 112 is described in further detail with reference to FIG. 2.

Proxy 124 provides an intermediate communications service for dataterminal 112 and service center 106. Proxy 124 may act on behalf of user110 to interface service center 106 and provides functions, such asauthentication services, and protocol translation services. For example,user 110 may be a MSNMS subscriber and proxy 124 may be a MSNMS server.User 110 may then use MSNMS IM services to indirectly interface servicecenter 106. As another example, proxy 124 may be a web site. User 110may provide information, such as information for call forwardingpatterns, to proxy 124 via web pages and secured using secured socketslayer (“SSL”). Proxy 124 may then establish an SSL session with service106 and provide the information from user 110.

Phones 114, 116, 118, and 122 interface with voice network 104. Phones114, 116, 118, and 122 may be implemented using known devices, includingwireline phones and mobile phones, such as wireless phones. Althoughphones 114, 116, 118, and 122 are shown directly connected to voicenetwork 104, any number of intervening elements, such as a privatebranch exchange (“PBX”), may be interposed between phones 114, 116, 118,and 122 and voice network 104.

FIG. 2 is a block diagram of a data terminal, in accordance with methodsand apparatus consistent with the principles of the present invention.As shown, data terminal 112 includes a central processing unit (CPU)200, a memory 202, a storage module 204, a network interface 206, aninput interface 208, an output interface 210, an input device 216, andan output device 218.

CPU 200 provides control and processing functions for data terminal 112.Although FIG. 2 illustrates a single CPU, data terminal 112 may includemultiple CPUs. CPU 200 may also include, for example, one or more of thefollowing: a co-processor, memory, registers, and other processingdevices and systems as appropriate. For example, CPU 200 may beimplemented using a Pentium™ processor provided from Intel Corporation.

Memory 202 provides a primary memory for CPU 200, such as for programcode. Memory 202 may be embodied with a variety of components ofsubsystems, including, a random access memory (“RAM”), and a read-onlymemory (“ROM”). For example, when data terminal 112 executes anapplication installed in storage module 204, CPU 200 may download atleast a portion of the program code from storage module 204 into memory202. As CPU 200 executes the program code, CPU 200 may also retrieveadditional portions of program code from storage module 204.

Storage module 204 provides mass storage for data terminal 112. Storagemodule 204 may be implemented with a variety of components or subsystemsincluding, for example, a hard drive, an optical drive, ageneral-purpose storage device, a removable storage device, and/or otherdevices capable of storing information. Further, although storage module204 is shown within data terminal 112, storage module 204 may beimplemented external to data terminal 112.

Storage module 204 includes program code and information for dataterminal 112 to communicate with service center 106. Storage module 204includes program code for a calendar application 216, such as GroupWiseprovided by Novell Corporation, or Outlook provided by MicrosoftCorporation; a client application 218, such as a MSNMS client, or AIMclient; and an Operating System (OS) 216, such as the Windows OperationSystem provided by Microsoft Corporation. In addition, storage module204 may include other program code and information (not shown), such asprogram code for TCP/IP communications; kernel and device drivers;configuration information, such as a Dynamic Host Configuration Protocol(DHCP) configuration; a web browser, such as Internet Explorer providedby Microsoft Corporation, or Netscape Navigator provided by NetscapeCorporation; and any other software that may be installed on dataterminal 112.

Network interface 206 provides a communications interface between dataterminal 112 and data network 102. Network interface 206 may receive andtransmit communications for data terminal 112. For example, networkinterface 206 may be a modem, or a local area network (“LAN”) port.

Input interface 208 receives input from user 110 via input device 212and provides the input to CPU 200. Input device 212 may include, forexample, a keyboard, a microphone, and a mouse. Other types of inputdevices may also be implemented consistent with the principles of thepresent invention.

Output interface 210 provides information to user 110 via output device214. Output device 214 may include, for example, a display, a printer,and a speaker. Other types of output devices may also be implementedconsistent with the principles of the present invention.

FIGS. 3 a–3 m illustrate exemplary screen shots of user interfaces toimplement for the device independent caller ID. As shown in FIG. 3 a,the screen shot provides a current location portion 300 for indicatingthat communications should be directed to the “AT HOME” location.Current location 300 may also indicate other locations, such as, forexample, “AT WORK, “IN CAR”, and “ON TRAVEL.” Such locations can bebased on predetermined choices or user configurable choices. The screenshot also provides a new message portion 302 that lists the number andtype of new messages. In particular, new message portion 302 shows thatthere is “1 New EMAIL”, “2 NEW VOICE MAILS”, “2 NEW NOTIFICATIONS”, and“3 NEW CALLS RECEIVED”. New message portion 302 can also provide thelast phone numbers dialed and the date they were dialed.

The screen shot also provides a search portion 304 that allows a user tosearch for contact information regarding a particular person. Forexample, search portion 304 provides “FIRST NAME”, “LAST NAME”, “CITY”,and “STATE” search inputs to find contact information of a particularperson. The screen shot also provides a tools portion 306 that gives auser options to modify various aspects of the communications service.These options may include “REACH ME”, “ACCOUNT MANAGEMENT”, and“PROFILE” options. The “REACH ME” option allows a user to change where auser is to be contacted shown in the current location portion 300. The“ACCOUNT MANAGEMENT” option allows a user to modify information such asbilling information associated with a called party. The “PROFILE” optionallows a user to modify how communications are forwarded.

As shown in FIG. 3 b, the screen shot shows a user interface for adevice manager. The screen shot shows a device manager portion 310 thatallows a user to view and to change phone number settings. For example,the user can change at “WORK” and at “HOME” phone number settings.Device manage portion 310 also provides a “CURRENT FEATURES” option thatlists features being used. Such features include “CALL FORWARDING”,“*69”, and “CALL WAITING”. The user also has the option to “ADDFEATURES” or “ADD NUMBERS”. The screen shot also provides an otherdevices portion 312 that allows a user to manage devices which are notassociated with a particular location. Other devices portion 310 lists“CELL PHONE”, “PAGER”, and “HANDHELD” devices as other devices in whicha user can manage. For each device, a user can view the number for theother device and associated “CURRENT FEATURES” for the other device.Other devices portion 312 also provides a “SYNCHRONIZE” option and “ADDDEVICE” option for the user.

As shown in FIG. 3 c, the screen shot shows a user interface for anaddress book. The screen shot shows an address list portion 315 thatlists contact information for the user. For example, the contactinformation may include “NAME”, “ADDRESS”, “NUMBER”, “EMAIL”, and“INSTANT MESSENGER” information. The screen shot also shows a recordinformation portion 317 that displays a specific record for a contact.The user has the option to “UPDATE” the record. The screen shows alsoprovides a search window to search for contact information and acalendar.

As shown in FIG. 3 d, the screen shot shows the user interface of FIG. 3c with a pull-down menu 320 that provides a number of options for a userto contact a selected person consistent with the present invention. Forexample, the user can contact the selected person using such options as“SEND PAGE”, “CALL”, “EMAIL”, and “INSTANT MESSAGE”. Pull-down menu 320also provides a “REMOVE” and “UPDATE” option to modify contactinformation in the address book.

As shown in FIG. 3 e, the screen shot shows the user interface of FIG. 3c with a pop-up window 325 that provides a number of inputs to modifycontact information for a person in the address book. Pop-up window 325is shown to update a record for “TOM SERVINI” using, e.g., “NAME”,“EMAIL”, and “PHONE NUMBER” inputs. Pop-up window 325 may also provide a“COMMENTS” window for the user to input a comment.

As shown in FIG. 3 f, the screen shot shows a user interface for amessage center panel having a summary portion 330 that lists messagesreceived in a “RECEIVED:” column, the subject of the received messagesin a “SUBJECT:” column, and the name of the persons who sent themessages in a “FROM:” column. Summary portion 330 may also provide othertypes of information such as the date/time the message was received, thedata size of the message, or an attachment indicator. Additionally,summary portion 330 may provide a summary of recent e-mails or instantmessages received by the user. Summary portion 330 also provides anumber of options to process the messages. For example, the user mayselect a “PRINT MESSAGE”, “FORWARD”, “REPLY”, “REPLY ALL”, or “NEWMESSAGE” option for the listed messages in summary portion 330. Thescreen shot also shows a detail view portion 332 that provides thedetails of a selected message. For example, the details of an emailmessage from “KEVIN.TROTTIER” are shown. Detail view portion 322 alsoprovides a “REPLY” option to reply to the viewed message.

As shown in FIG. 3 g, the screen shot shows a user interface for amessage center panel having a summary portion 340, which is similar tosummary portion 330 of FIG. 3 f. Summary portion 340 provides summaryinformation applicable to voice mails in a “NUMBER:”, “FROM:” and“RECEIVED:” column. The screen shot also shows a detail portion 342 thatallows a user to playback the voice message. Detail portion 342 alsoallows the user to “DELETE” or “SAVE” the voice message.

FIG. 3 h shows a screen shot of a message center panel having a messagesummary list portion 350 that lists a summary of messages received. Thescreen shot also shows a message detail portion 352 that displays detailof a message. FIG. 3 i shows a screen shot of a user interface having adevice summary portion 355 that lists the devices in use by the user anda device detail portion 357 that allows the user to configure aparticular device. For example, the user may configure the number oftimes to ring the “HOME 1” or “CELL PHONE” device.

FIG. 3 j shows a screen shot of the user interface of FIG. 3 i having apop-up window 360 for adding a device. The screen shot also shows adetail portion 362, which is similar to detail portion 357 of FIG. 3 i.FIG. 3 k shows a screen shot of the user interface of FIG. 3 i having apop-window 370 that provides an “UPDATE RECORD” option for a user tomodify the sequence of devices being called.

FIG. 31 shows a screen shot of a user interface for account managementhaving an overview portion 380 allowing a user access to summaryinformation regarding a users account. For example, overview portion 380allows a user to access “PREVIOUS BALANCE”, “CURRENT CHARGES”, “BASICCHARGES”, “LONG DISTANCE CHARGES”, and “WIRELESS CHARGES” summaryinformation. The screen shot also shows a message portion 382 whichdisplays messages regarding the user's account. For example, a messagesuch as “Your bill is past due” can be displayed in message portion 382.

FIG. 3 m shows a screen shot of a user interface for profile managementhaving a customer profile portion 390, which displays a customer'sprofile. The customer's profile may include information such as“Customer Name:”, “Account Number:”, “Address” and “Phone:” information.The screen shot also shows a personal profile portion 392 that displaysa user's personal profile. The personal profile may include “Name:”,“Address”, etc. information. The screen shot also shows a businessprofile portion 394 that displays a business profile. The businessprofile may include information such as “Company”, “Job Title:” etc.information. These profiles can be kept confidential and updated toinclude any other type of profile information.

FIG. 4 is a block diagram of a service center, in accordance withmethods and apparatus consistent with the principles of the presentinvention. Service center 106 is a gateway device, connecting voicenetwork 104 to data network 102. As shown, service center 106 includesfirewalls 400 and 402, a data interface server 404, a management server406, a voice interface server 408, a calendar server 410, and a callerID notification server 420.

Firewalls 400 and 402 provide security services for communicationsbetween service center 106 and data network 102, and between servicecenter 106 and voice network 104, respectively. For example, firewalls400 and 402 may restrict communications between data terminal 112 andone or more servers within service center 106. Any security policy maybe implemented in firewalls 400 and 402 consistent with the principlesof the present invention. Firewalls 400 and 402 may be implemented usinga combination of known hardware and software, such as the RaptorFirewall provided by the Axent Corporation. Furthermore, firewalls 400and 402 may be implemented as separate machines within service center106, or implemented on one or more machines external to service center106.

Data interface server 404 provides interface services between servicecenter 106 and data terminal 112. For example, data interface server 404may exchange TCP/IP communications, such as IM communications or XMLinformation which include call forwarding patterns from user 110. Datainterface server 404 may also interface proxy 124 to indirectly exchangecommunications with data terminal 112.

Management server 406 controls operation of service center 106 andprovides access services to service center database 108. For example,management server 406 may store information, such as call forwardingpatterns, received from data interface server 404 into service centerdatabase 108. Management server 406 may also service queries to servicecenter database 108, for example, from data interface server 404 orvoice interface server 408.

Voice interface server 408 provides interface services between servicecenter 106 and voice network 104. For example, voice interface server408 may exchange information, such as call forwarding patterns, betweenservice center database 108 and voice network 104. Voice interfaceserver 408 may provide the information to voice network 104 using one ormore protocols. For example, voice interface server 408 may use TCP/IP,or the Signaling System 7 (“SS7”) protocol.

Caller ID notification server 420 monitors voice network 104 forincoming caller ID messages to user 110. Caller ID notification server420 determines where to forward the caller ID information based onservice center database 108.

SS7 is a telecommunications protocol defined by the InternationalTelecommunication Union (“ITU”). SS7 is an “out-of-band” signalingprotocol using a system of nodes called Service Switching Points(“SSP”), Signal Transfer Points (“STP”), and Service Control Points(“SCP”). “Out-of-band signaling” is signaling that does not take placeover the same path between switching elements as the connection, andinstead uses separate digital channels between SS7 nodes. SS7 allowsvoice network 104 to provide enhanced functions, such as callforwarding; caller-ID; three-way calling; wireless services such asroaming and mobile subscriber authentication; local number portability;and toll-free/toll services.

Calendar server 410 provides services to calendar application 220 ondata terminal 112. For example, calendar server 410 may provide emailservices, directory services, and calendar information, such as scheduleinformation, to data terminal 112. Calendar server 410 may operate inconjunction with data interface server 404 to exchange, for example,call forwarding patterns with data terminal 112.

Although FIG. 4 shows separate servers within service center 106,service center 106 may be implemented using any combination of hardwareand software. For example, service center 106 may implement datainterface server 404, management server 406, voice interface server 408,calendar server 410, and caller ID notification server 420 as softwareapplications installed on a single machine. In addition, service center106 may access one or more servers remotely across a network.

FIG. 5 is a caller ID notification data structure, in accordance withmethods and apparatus consistent with the principles of the presentinvention. Caller ID notification data structure table 500 illustratesthe type of information that is available to a user when a caller ID isreceived. Each line of caller ID notification data structure tablerepresents a caller ID notification event. Each caller ID notificationevent includes a time 520, a date 522, and caller ID 524. The caller IDis information stored on the source of a call.

FIG. 6 is a block diagram of a voice network, in accordance with methodsand apparatus consistent with the principles of the present invention.As shown, voice network 104 includes a service control point (“SCP”)600, service transfer points (“STP”) 602 and 604, service switchingpoints (“SSP”) 606, 608, 610, and 612, and a configuration database 614.

Voice network 104 may be implemented using the PSTN and SS7 as asignaling protocol. As noted above, the SS7 protocols allows voicenetwork 104 to provide features, such as call forwarding; caller-ID;three-way calling; wireless services such as roaming and mobilesubscriber authentication; local number portability; and toll-free/tollservices. The SS7 protocol provides various types of messages to supportthe features of voice network 104. For example, these SS7 messages mayinclude Transaction Capabilities Applications Part (“TCAP”) messages tosupport event “triggers,” and queries and responses between SCP 600 andSSPs 606, 608, 610, and 612.

SCP 600 provides interface services into configuration database 614related to processing of calls within voice network 104, and interfaceservices into voice interface server 408. SCP 600 provides translationand routing services of SS7 messages to support the features of voicenetwork 104, such as call forwarding. In addition, SCP 600 may exchangeinformation with voice interface server 408 in service center 106 usingTCP/IP or SS7. For example, SCP 600 may receive configurationinformation from voice interface terminal 408 which requests one or morecall forwarding patterns in voice network 104. SCP 600 may thenconfigure the call forwarding patterns in voice network 104 using one ormore SS7 messages, such as TOAP messages, to set triggers in SSPs 606,608, 610, and 612.

SCP 600 may be implemented using a combination of known hardware andsoftware. Although SCP 600 is shown with a direct connection to servicecenter 106, any number of network elements including routers, switches,hubs, etc. may be used to connect SCP 600 and service center 106.

STPs 602 and 604 relay SS7 messages within voice network 104. Forexample, STPs 602 and 604 may route SS7 messages between SSPs 606, 608,610, and 612. STPs 602 and 604 may be Integrated as adjunct to an SSP,e.g., SSPs 606, 608, 610, and 612, or may be implemented as a separatemachine. In addition, STPs 602 and 604 may provide security functions,such as security checks on incoming/outgoing SS7 messages. STPs 602 and604 may also provide other functions, such as acquisition and storage oftraffic/usage statistics. STPs 602 and 604 may be implemented usingknown hardware and software from manufacturers such as NORTEL™ andLUCENT Technologies™.

SSPs 606, 608, 610, and 612 provide an interface between voice network104 and phones 114, 116, 118, and 122, respectively, to setup, manage,and release telephone calls within voice network 104. SSPs 606, 608,610, and 612 may be implemented as a voice switch, an SS7 switch, or acomputer connected to a switch. SSPs 606, 608, 610, and 612 exchange SS7signal units to support a telephone call between calling party 120 anduser 110. For example, SSPs 606, 608, 610, and 612 may exchange SS7messages, such as TCAP messages, within message signal units (“MSU”) tocontrol calls, perform database queries to configuration database 614,and provide maintenance information.

Configuration database 614 comprises one or more known databases tosupport the features of voice network 104. For example, configurationdatabase 614 may include a call management service database; a lineinformation database (LIDB); a business services database; a homelocation register; and a visitor location register.

FIG. 7 is a flow diagram illustrating a method of supplying Caller-IDinformation over a data network consistent with the present invention. Acall attempt from a calling party 120 is detected by a switch (step710). When calling party 120 attempts to make a call to called party,e.g. user 110, by dialing the phone number of phone 114, SSP 612 detectsthe call attempt and generates signaling information. The signalinginformation contains an identifier of called party 110, e.g., the calledparty's telephone number, and an identifier of calling party 120.

SSP 612 sends the signaling information, in the form of an alert, to SCP600. Upon receiving the alert, SCP 600 queries configuration database614 to determine the calling party's Caller-ID information (step 720).From the query of configuration database 614, SCP 600 receives theCaller-ID information of calling party 120.

SCP 600 then provides the calling party Caller-ID information and calledparty identifier to caller ID notification server 420 in service center106 (step 730). In response to receiving information from SCP 600,caller ID notification server 420 queries service center database 108based upon the called party identifier (step 740). From querying servicecenter database 108, caller ID notification server 420 determineswhether the called party identifier corresponds to a subscriber, e.g.,called party 110 (step 750).

If the called party identifier corresponds to called party 110, thencaller ID notification server 420 may determine where to forward theCaller-ID information, e.g., to user terminal 112 (step 760). Forexample, caller ID notification server 420 may transmit the Caller-IDinformation to data interface server 404 using IM. Subsequently, datainterface server 404 forwards the Caller-ID information within an IMmessage to user terminal 112 where it may be displayed or otherwisepresented to called party 110. Accordingly, user 110 may receiveCaller-ID information independently of phone 114 via data network 102and user terminal 112.

If the called party identifier does not correspond to a subscriberwithin service center database 108, then the process may end.Alternatively, if user 110 was not currently online, then caller IDnotification server 420 may archive the Caller-ID information withinservice center database 108 for later delivery.

Other embodiments of the invention will be apparent to those skilled inthe art from consideration of the specification and practice of theinvention disclosed herein. It is intended that the specification andexamples be considered as exemplary only, with a true scope and spiritof the invention being indicated by the following claims.

1. A method for supplying calling party information to a called partyvia a network comprising a telephone network, a data network, and atleast one gateway device connected to both the telephone network and thedata network, comprising: receiving by the gateway device, via thetelephone network, signaling information representing a telephone callfrom the calling party to a telephone device associated with the calledparty, the signaling information comprising called party information;obtaining the calling party information based on the signalinginformation; determining whether a second device associated with thecalled party and separate from the telephone device is connected to thedata network; storing the calling party information when the seconddevice is not connected to the data network; and providing the storedcalling party information to the second device associated with thecalled party from the gateway device via the data network when thesecond device becomes connected to the data network.
 2. The method ofclaim 1, wherein providing the calling party information comprisesdisplaying an instant message on a display device.
 3. The method ofclaim 1, wherein the telephone network is a public services telephonenetwork.
 4. The method of claim 1, wherein the telephone network is awireless telephone network.
 5. The method of claim 1, wherein providingthe calling party information comprises displaying the calling partyinformation on a display device associated with the called party.
 6. Themethod of claim 1, wherein obtaining the calling party informationcomprises connecting to a switch in the telephone network based on thecalled party information and obtaining calling party information fromthe switch.
 7. The method of claim 6, wherein providing the callingparty information comprises providing the calling party information to aserver in the data network associated with the called party.
 8. Themethod of claim 1, wherein providing the calling party informationcomprises providing the calling party information using an instantmessaging server.
 9. The method of claim 8, further comprising using theinstant messaging server to authenticate the called party.
 10. Themethod of claim 1, wherein the second device is a data terminal.
 11. Anapparatus comprising: a telephone network; a switch connected to thetelephone network; a data network; a data controller connected to thedata network; a gateway connected to both the switch and the datacontroller, the gateway being capable of (1) receiving, via the switch,signaling information representing a telephone call from a calling partyto a telephone device associated with a called party, the signalinginformation comprising called party information; (2) obtaining callingparty information based on the signaling information; (3) determiningwhether a second device associated with the called party and separatefrom the telephone device is connected to the data network; (4) storingthe calling party information when the second device is not connected tothe data network; and (5) providing the stored calling party informationto the second device associated with the called party via the datacontroller when the second device becomes connected to the data network.12. The apparatus of claim 11, wherein the gateway is further capable ofproviding instruction for displaying an instant message on a displaydevice associated with the called party.
 13. The apparatus of claim 11,wherein the gateway is capable of obtaining the calling partyinformation via the switch.
 14. The apparatus of claim 11, wherein thegateway is further capable of displaying the calling party informationon a display device associated with the called party.
 15. The apparatusof claim 14, wherein the gateway is further capable of providing thecalling party information to a server in the data network associatedwith the called party.
 16. The apparatus of claim 14, wherein thegateway is further capable of providing instructions to an instantmessaging server for providing the calling party information.
 17. Theapparatus of claim 16, further capable of providing instructions to theinstant messaging server for authenticating the called party.
 18. Theapparatus of claim 11, wherein the second device is a data terminal. 19.A system comprising: a telephone network for receiving a callerconnection request; a data network for providing calling partyinformation; a gateway device, connecting said telephone network to saiddata network, for: (1) receiving, via the telephone, network signalinginformation representing a telephone call from a calling party to atelephone device associated with a called party, the signalinginformation comprising called party information; (2) obtaining thecalling party information based on the signaling information; (3)determining whether a second device associated with the called party andseparate from the telephone device is connected to the data network; (4)storing the calling party information when the second device is notconnected to the data network, and (5) providing the stored callingparty information to the second device associated with the called partyvia the data network when the second device becomes connected to thedata network.
 20. The system of claim 19, wherein the gateway devicecomprises means for providing instructions that cause a display deviceassociated with the called party to display an instant message.
 21. Thesystem of claim 19, wherein the gateway device comprises a means forconnecting to a switch in the telephone network based on the calledparty information and obtaining calling party information from theswitch.
 22. The system of claim 19, wherein the data network comprises ameans for causing a display device associated with the called party todisplay the calling party information.
 23. The system of claim 22,wherein the gateway device network comprises means for providing thecalling party information to a server in the data network associatedwith the called party.
 24. The system of claim 22, wherein the gatewaydevice comprises means for providing the calling party information usingan instant messaging server.
 25. The system of claim 23, furthercomprising means for using the instant messaging server to authenticatethe called party.
 26. The system of claim 19, wherein the second deviceis a data terminal.